﻿#pragma once

#include <iostream>
#include <vector>
#include <cstdint>

namespace libdaq {
namespace backend {
struct USBOption {
  USBOption() = default;
  USBOption(const uint16_t vendor_id,
            const uint16_t product_id,
            const std::vector<uint8_t> &endpoint_in,
            const std::vector<uint8_t> &endpoint_out) {
    this->vendor_id = vendor_id;
    this->product_id = product_id;
    this->endpoints_in = endpoint_in;
    this->endpoints_out = endpoint_out;
  }

  USBOption(const USBOption &option) {
    this->vendor_id = option.vendor_id;
    this->product_id = option.product_id;
    this->endpoints_in = option.endpoints_in;
    this->endpoints_out = option.endpoints_out;
  }

  USBOption &operator=(const USBOption &option) = default;

  uint16_t vendor_id = 0x00;
  uint16_t product_id = 0x00;
  std::vector<uint8_t> endpoints_in = {0x00};
  std::vector<uint8_t> endpoints_out = {0x00};
};
} // namespace backend
} // namespace libdaq
